In recent years it has become more and more prevalent for job hunters to utilize the Internet to perform their job search, typically by performing searches on job listings posted online by hiring companies and/or recruiters. Historically, these job searches have relied solely on text-based features. Specifically, traditional informational retrieval systems, and particularly web search engines, focus on keyword matching. In this search paradigm, users typically input their information needs as a set of keywords, and the search engines match the keywords with documents using some additional signals, such as document popularity (e.g., document historical click through rate (CTR), PageRank, etc.) to find relevant documents. While this paradigm works well for general web searches, it does not work well for job searches where often the keywords specified by a user are not necessarily intended to locate documents containing those keywords but rather are intended to locate documents that have some other correlation to the keywords. Additionally, job search queries tend to be overbroad as job titles often are not precise enough to specifically define what job skills or requirements are necessary to perform the underlying job.
For example, in a job search, a user could issue a query “software engineer Cambridge CompanyXYZ.” Using a purely keyword-based approach, the only job postings returned would be those having “software engineer” “Cambridge” and “Company xyz” in the document. This would not return what might be other relevant job posting results, such as results where “Software programmer” was used to define the job rather than “software engineer.” results where “CompanyXYZ” is not mentioned in the job posting but the job posting itself was created and posted by CompanyXYZ, results for jobs for a subsidiary of CompanyXYZ, and results for jobs within a short distance to Cambridge but not actually in Cambridge. Additionally, false positives may be presented in that results may be returned for software engineer jobs that require a set of skills much different than those of the user or that the user is interested in (due to the fact that “software engineer” can mean so many different things) or for jobs that are in Cambridge, England when the user really wants jobs in Cambridge, Mass.
Semantic search, on the other hand, represents information needs and documents in a structured way and semantically matches the information needs with the documents. A challenge with semantic search is that it is typically difficult for a user to describe his or her information need in a semantic representation. Moreover, semantic search is often restricted by concepts and relations predefined in a knowledge base. Thus, it does not scale well to open and dynamic document sets, such as those found on the web.